package java_learn.java_web.基础增强.注解.annotation;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Method;
import java.util.Properties;

/**
 * 框架类
 *
 * @Author: 李浩然
 * @Date: 2021/5/24 3:34 下午
 */
@Pro(className = "java_learn.java_web.基础增强.注解.annotation.Demo1", methodName = "show")
public class ReflectTest {
    //可以创建任意类的对象，可以执行任意方法

    /*
        前提：不能改变该类的任何代码。可以创建任意类的对象，可以执行任意方法
     */
    public static void main(String[] args) throws Exception {
        //1.解析注解
        //1.1获取该类的字节码文件
        Class<ReflectTest> reflectTestCLass = ReflectTest.class;

        //2.获取上边的注解对象,在内存中生成了该注释接口的子类实现对象
        Pro an = reflectTestCLass.getAnnotation(Pro.class);
        //3.调用注解对象中定义的抽象方法，获取返回值
        String className = an.className();
        String methodName = an.methodName();
        System.out.println(className);
        System.out.println(methodName);

    }
}
